SYDE 556/750: Simulating Neurobiological Systems

Accompanying Readings: Chapter 1

Terry Stewart


In [1]:
from IPython.display import YouTubeVideo
YouTubeVideo('U_Q6Xjz9QHg', width=720, height=400, loop=1, autoplay=0, playlist='U_Q6Xjz9QHg')


Out[1]:

Overall Goal

  • Building simulated brains
  • Why?
    • To figure out how brains work
    • To apply this knowledge to building systems

Administration

Coursework

  • Four assignments (60%)

    • 20%, 20%, 10%, 10%
    • Two weeks for each assignment, except last one (one week)
    • Everyone writes their own code, generates their own graphs, writes their own answers
      • But it helps to get together to discuss things
  • Final project

    • Make a novel model of some neural system
    • For 556 students, this can be just an extension of something seen in class
    • For 750 students, this must be more of a research project
    • ideas

Schedule

WeekReadingMondayWednesdayAssignments
Jan 6, 8Chpt 1IntroductionNeurons
Jan 13, 15Chpt 2,4Neural Coding#1 posted
Jan 20, 22Chpt 4Neural Models
Jan 27, 29Chpt 5,6Feedforward Transformations#1 due (29th at dawn); #2 posted
Feb 3, 5Chpt 6,3Nonlinear Transformations
Feb 10, 12Chpt 7Analysis of Representations#2 due (14th at dawn)
Feb 17, 19*Reading Week*#3 posted
Feb 24, 26Chpt 8Dynamics and Neural Control
Mar 3, 5Chpt 8Dynamics and Neural Control#3 due (5th at dawn)
Mar 10, 12Chpt 9Inference and Learning#4 posted
Mar 17, 19#4 due (19th at dawn)
Mar 24, 26Project Presentations
Mar 31, Apr 2Project Presentations

My Background

  • Undergrad: Systems (Waterloo)
    • option in Cognitive Science
  • Masters of Philosophy in Computer Science and AI (Sussex)
    • experimental psychology on robots
  • PhD in Cognitive Science (Carleton)
    • philosophy of computational modelling

Research Theme

  • How does the mind work?
  • Most complex and most interesting system humanity has ever studied
    • Why study anything else?
  • How should we go about studying it?
    • What techniques/tools?
    • How do we know if we're making progress?
    • How do we deal with the complexity?

Standard Approach

  • Psychology
    • Measure people's performance in lots of situations
    • Describe processes that might explain observations
    • Example: memory
  • Problems
    • Hard to get quantitative predictions
    • Compare to Aristotelian gravity
      • "All bodies move toward their natural place"

Cognitive Modelling

  • Let's build it
    • Specify theory in enough detail that this is possible
    • Tends to get complex, so need computer simulation
  • Do for psychology what Newton did for physics
    • Note that Newton got lucky that gravity turned out to be analytically tractable
    • If he had a computer, he wouldn't have had to invent calculus

Cognitive Models

  • Lots of different models
    • e.g. Conditioning (Rescorla-Wagner model)

Cognitive Architectures

  • Don't want to make a whole new model for each situation
    • Hard to generalize
    • Lots of parameters
    • Can fit anything
  • Identify basic components used across tasks
    • Adds constraints
    • Imposes a high-level organizational theory

ACT-R

  • Most widely used cognitive architecture
    • http://act-r.psy.cmu.edu/
    • Remembering lists
    • Driving a car
    • Dialing a phone
    • Mental arithmetic
    • Parsing a sentence
    • Military training
    • etc etc
  • Each components has equations
    • Memory activation: $A_i = ln( \sum t_j^{-d})+\beta_i$
    • Including timing
    • Recall time: $T = F e^{-fA_i}$

Problems

  • Disconnected from neuroscience
    • Trying to map components of the model to brain areas
    • When a component is active, maybe neurons in that area are more active?
  • No "bridging laws"
    • Like having rules of chemistry that never mention that it's all built out of atoms and electrons
  • No constraints on the equations
    • Just anything that can be written down
    • Many possibilities; hard to figure out what matches human data best
  • Maybe that's okay
    • Do we understand the brain enough to make this connection and constrain theories?
    • When understanding a word processor, do we worry about transistors?

The Brain

  • 2 kg (2% of body weight)
  • 20 Watts (25% of power consumption)
  • Area: 4 sheets of paper
  • Neurons: 100 billion (150,000 per $mm^2$)

In [1]:
from IPython.display import YouTubeVideo
YouTubeVideo('jHxyP-nUhUY', width=500, height=400, autoplay=0, start=60)


Out[1]:

Brain structures

  • Lots of visually obvious structure
  • Lots of greek and latin names to remember
    • frontal cortex, thalamus, amygdala, hypothalamus, substantia nigra, etc etc

A Neuron

Neurons in the brain

  • 100 billion
  • 100's or 1000's of visually distinct types
  • Axon length: from $10^{-4}$ to $5$ m
  • Each neuron: 500-200,000 inputs and outputs
    • 72km of axons
  • Communication: 100's of different neurotransmitters

Neuron communication: Synapses

What it really looks like

What it really really looks like


In [20]:
from IPython.display import YouTubeVideo
YouTubeVideo('F37kuXObIBU', width=720, height=500, start=8*60+35)


Out[20]:

Considering the brain

  • lesion studies
  • what are the effects of damaging different parts of the brain?
    • occipital cortex: blindness (call it visual cortex)
    • inferior frontal gyrus: can't speak (Broca's area)
    • posterior superior temporal gyrus: can't understand speech (Wernicke's area)
    • fusiform gyrus: can't recognize faces (and other complex objects)
    • prefrontal cortex: moral judgement???
    • aperceptive visual agnosia
    • etc, etc, etc

fMRI

  • Functional Magnetic Resonance Imaging
  • Measure blood oxygenation levels in the brain
    • show the difference between two tasks
    • averaged over ~100 trials
  • Measured while performing tasks
    • ~4 second between scans
    • some attempts at going faster, but blood vessels don't change much faster than this
  • Shows where energy is being used in the brain
    • equivalent to figuring out how a CPU works by measuring temperature
    • a bit more fine-grained than lesion studies
  • Neurosynth

EEG

  • Electrical activity at the scalp
  • High time resolution
  • Large-scale communication between areas

Single cell recording

Local Field Potential

  • Place electrodes into the brain, record from it
    • not necessarily right at a neuron
  • Multielectrode recordings
  • Post-processing: "Spike sorting"

Rat place cells

Calcium Imaging

  • In a fish embryo

Calcium imaging

  • In a stalking fish

Optogenetics

What do we know?

  • lots of details
    • Data: "The proportion of type A neurons in area X is Y"
    • Conclusion: "Therefore, the proportion of type A neurons in area X is Y".
  • hard to get a big picture

    • over-generalizing from data
  • "data-rich and theory-poor"

    • need some way to connect these details
    • need a unifying theory

Levels of description

Computational Neuroscience

  • what I cannot create, I do not understand
  • build a computer simulation
    • do to neuroscience what Newton did to physics
    • too complex to be analytically tractable, so use computer simulation
  • Can we use this to connect the levels?

Single neuron simulation

  • Hodgkin & Huxley, 1952

Single neuron simulation

  • Hodgkin & Huxley, 1952

Single neuron simulation

Millions of neurons


In [9]:
from IPython.display import YouTubeVideo
YouTubeVideo('_UFOSHZ22q4', width=600, height=400, start=60)


Out[9]:

Billions of neurons

  • Simplify the neuron model
    • $C {dV \over dt} = I - {V \over R}$

In [13]:
from IPython.display import YouTubeVideo
YouTubeVideo('WmChhExovzY', width=600, height=400)


Out[13]:

The controversy

  • what level of detail for the neurons? how should they be connected?
  • IBM SyNAPSE project
    • billions of neurons, but very simple models
    • randomly connected
    • 2009: "Cat"-scale brain (1 billion neurons)
      • 2012: "Human"-scale brain (100 billion neurons)
    • Called a "hoax and PR stunt" by:
  • Blue Brain
    • much more detailed neurons
    • randomly connected
  • how much detail is enough?
    • how could we know?
  • The real test: connecting to behaviour
    • How can we build models that actually do something?
    • How should we connect realistic neurons so they work together?

The Neural Engineering Framework

  • Our attempt
    • probably wrong, but got to start somewhere
  • Three principles
    • Representation
    • Transformation
    • Dynamics
  • Building behaviour out of detailed low-level components

Representation

  • How do neurons represent information?
  • What is the mapping between a value to be stored and the activity of a group of neurons?
  • What sorts of values can be stored?
  • Examples:
    • Line detection in retina
    • Place cells
  • Claim: every group of neurons should be thought of as representing something
    • each neuron has some preferred value
    • neurons fire more strongly the closer the value is to that preferred value
    • values are vectors

Transformation

  • Connections compute functions on those vectors
  • Activity of one group of neurons causes another group to fire
    • One group may represent $x$, connected to annother group representing $y$
    • Whatever firing pattern we get in $y$ due to $x$ is a function $y = f(x)$
  • Can find what class of functions are well approximated this way
  • Puts limits on the algorithms we can implement with neurons

Dynamics

  • Recurrent connections (feedback)
  • Turns out to allow us to compute functions of this form:
    • ${dx \over dt} = f(x, u)$
    • where $x$ is what the neurons represent, and $u$ is the input neurons
  • Great for implementing all of control theory
  • Also memory! (${dx \over dt} = u$)

Examples

  • This approach gives us a neural compiler
  • Given an algorithm, you can solve for the connections between neurons that will approximate that algorithm
    • Works for a wide variety of neuron models
    • Number of neurons affects accuracy
    • Neuron properties influence timing

Vision: character recognition

Simple reactions: Braitenburg vehicle

Problem solving: Tower of Hanoi

Spaun: digit recognition

Spaun: copy drawing

Spaun: addition by counting

Spaun: pattern completion

Benefits

  • No one else can do this
  • New ways to test theories (neurological constraints)
  • Suggests different types of algorithms
  • Potential medical applications
  • New ways of understanding the mind and who we are

Homework

  • Get the textbook
    • Eliasmith and Anderson (2003). Neural Engineering: Representation, Computation and Dynamics in Neurobiological Systems. MIT Press.
  • Read chapter 1